// import WorkerTimer from "./worker-timer"
import { setTimeout } from "worker-timers"

/**
 * 延迟执行指定的毫秒数
 * @param {number} ms - 延迟的毫秒数
 * @returns {Promise} 返回一个Promise，在指定时间后resolve
 */
export function sleep(ms) {
  return new Promise((resolve) =>
    setTimeout(() => {
      resolve()
    }, ms)
  )
}
// export function sleep(ms) {
//   return new Promise((resolve) => {
//     const worker = new Worker(
//       URL.createObjectURL(
//         new Blob(
//           [
//             `
//       self.onmessage = function(e) {
//         setTimeout(() => self.postMessage('done'), e.data);
//       }
//     `
//           ],
//           { type: "text/javascript" }
//         )
//       )
//     )

//     worker.onmessage = () => {
//       worker.terminate()
//       resolve()
//     }

//     worker.postMessage(ms)
//   })
// }

/**
 * 创建并触发模拟点击事件
 * @param {HTMLElement} element - 需要触发点击的目标元素
 * @param {number} offsetX - 相对元素左边的偏移量
 * @param {number} offsetY - 相对元素顶部的偏移量
 */
export function triggerMouseEvent(element, offsetX = 10, offsetY = 10) {
  const react = element.getBoundingClientRect()
  const clickEvent = new MouseEvent("mousedown", {
    bubbles: true,
    cancelable: true,
    clientX: react.left + offsetX,
    clientY: react.top + offsetY
  })
  element.dispatchEvent(clickEvent)
}

/**
 * 时间字符串转秒
 * @param {string} timeStr - 时间字符串，格式为 "xx小时xx分钟xx秒"
 * @returns {number} 转换后的秒数
 */
export function transFromSeconds(timeStr) {
  // 0小时0分钟40秒 / --
  if (timeStr === "--") {
    return 0
  }
  const matches = timeStr.match(/(\d+)小时(\d+)分钟(\d+)秒/)
  if (!matches) {
    return 0
  }
  const [_, hours, minutes, seconds] = matches
  return parseInt(hours) * 3600 + parseInt(minutes) * 60 + parseInt(seconds)
}
